<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>jsx语法规则</title>
    <style>
      .title {
        background-color: seagreen;
        width: 200px;
      }
    </style>
  </head>
  <body>
    <!-- 准备好一个“容器” -->
    <div id="test"></div>

    <!-- 引入react核心库 -->
    <script src="../React-js/react.development.js"></script>
    <!-- 引入react-dom,用于支持react操作DOM -->
    <script
      type="text/javascript"
      src="../React-js/react-dom.development.js"
    ></script>
    <!-- 引入babel,用于将jsx转换为js -->
    <script type="text/javascript" src="../React-js/babel.min.js"></script>

    <script type="text/babel">
      // <!-- *此处一定要学babel -->

      const myID = 'cxh';
      const myData = 'Hello,React';

      // *1.创建虚拟DOM
      const vDOM = (
        <div>
          <h2 className="title" id={myID}>
            <span style={{ color: 'white', fontSize: '30px' }}>{myData}</span>
          </h2>
          <h2 className="title" id={myID.toUpperCase()}>
            <span style={{ color: 'white', fontSize: '30px' }}>{myData}</span>
          </h2>
          <input type="text" />
        </div>
      );
      // <Good>123</Good>
      // *2.渲染虚拟DOM到页面
      ReactDOM.render(vDOM, document.getElementById('test')); //虚拟DOM  容器

      /**
       * * jsx语法规则:
       * *    1、定义虚拟DOM时,不要写引号。
       * *    2、标签中混入**JS表达式**要用 {}。
       * *    3、样式的类名要用className。
       * *    4、内联样式,要用 style={{ key : 'value' }}的形式去写。
       * *    5、只有一个根标签
       * *    6、标签必须闭合
       * *    7、标签首字母
       * *         (1).若小写字母开头,则将标签转为html中同名元素,若html中无该标签对应的同名元素,则报错
       * *         (2).若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错

      */
    </script>
  </body>
</html>
